package cn.stylefeng.guns.modular.business.frequency.financedetail.model.param;

import cn.stylefeng.guns.core.pojo.base.param.BaseParam;

import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;

/**
 * 财务明细表
 *
 * @author yujie
 * @date 2023/05/09 17:17
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class FinanceDetailParam extends BaseParam {

    /**
     * id
     */
    @NotNull(message = "id不能为空",groups = {edit.class})
    private Long id;

    /**
     * 订单id
     */
    @NotNull(message = "订单id不能为空",groups = {add.class,edit.class})
    private Long orderId;

    /**
     * 关联id
     */
    @NotNull(message = "关联id不能为空",groups = {add.class,edit.class})
    private Long relationId;

    /**
     * 结算人
     */
    @NotNull(message = "结算人不能为空",groups = {add.class,edit.class})
    private String settlementUser;

    /**
     * 结算人ID
     */
    @NotNull(message = "结算人ID不能为空",groups = {add.class,edit.class})
    private Date settlementUserId;

    /**
     * 结算人电话
     */
    @NotNull(message = "结算人电话不能为空",groups = {add.class,edit.class})
    private String settlementPhone;

    /**
     * 费用类型：1.现付收款 2.到付收款 3.欠付收款 4.月结收款 5.商务付款 6.提车付款 7.送车付款 8.承运付款 9.其他付款
     */
    @NotNull(message = "费用类型：1.现付收款 2.到付收款 3.欠付收款 4.月结收款 5.商务付款 6.提车付款 7.送车付款 8.承运付款 9.其他付款不能为空",groups = {add.class,edit.class})
    private Integer type;

    /**
     * 应结算
     */
    @NotNull(message = "应结算不能为空",groups = {add.class,edit.class})
    private BigDecimal needSettlement;

    /**
     * 已结算
     */
    @NotNull(message = "已结算不能为空",groups = {add.class,edit.class})
    private BigDecimal hasSettlement;

    /**
     * 未结算
     */
    @NotNull(message = "未结算不能为空",groups = {add.class,edit.class})
    private BigDecimal unSettlement;

    /**
     * 结算状态：0待结算 1.已结算 2.已完成
     */
    @NotNull(message = "结算状态：0待结算 1.已结算 2.已完成不能为空",groups = {add.class,edit.class})
    private Integer status;

    /**
     * temp_flag
     */
    @NotNull(message = "temp_flag不能为空",groups = {add.class,edit.class})
    private Integer tempFlag;

}
